_require local "./List.smi"
_require       "./StringCvt.smi"

structure SMLSharp_ScanChar =
struct
  val scanDigit : (char, 's) StringCvt.reader -> (int, 's) StringCvt.reader
  val scanOctDigit : (char, 's) StringCvt.reader -> (int, 's) StringCvt.reader
  val scanHexDigit : (char, 's) StringCvt.reader -> (int, 's) StringCvt.reader
  val skipSpaces : (char, 's) StringCvt.reader -> 's -> 's
  val scanSpaces : (char, 's) StringCvt.reader -> (unit, 's) StringCvt.reader
  val scanEscapeSpaces : (char, 's) StringCvt.reader
                         -> (unit, 's) StringCvt.reader
  val scanChar : (char, 's) StringCvt.reader -> (char, 's) StringCvt.reader
  val scanCChar : (char, 's) StringCvt.reader -> (char, 's) StringCvt.reader
  val scanRepeat0 : ((char, 's) StringCvt.reader -> ('a, 's) StringCvt.reader)
                    -> (char, 's) StringCvt.reader -> 's -> 'a list * 's
  val scanRepeat1 : ((char,'s) StringCvt.reader -> ('a, 's) StringCvt.reader)
                    -> (char,'s) StringCvt.reader
                    -> ('a list, 's) StringCvt.reader
  val scanInt : StringCvt.radix
                -> (char, 's) StringCvt.reader
                -> ({neg:bool, radix:int, digits:int list}, 's) StringCvt.reader
  val scanWord : StringCvt.radix
                 -> (char, 's) StringCvt.reader
                 -> ({radix:int, digits:int list}, 's) StringCvt.reader
  val radixToInt : StringCvt.radix -> int
  val intToDigit : int -> char
  val fmtInt : (int -> (int, 's) StringCvt.reader)
               -> StringCvt.radix
               -> 's
               -> char list

  val scanSign : (char, 's) StringCvt.reader -> 's -> bool * 's
  val scanExponent : (char, 's) StringCvt.reader
                     -> (bool * int list, 's) StringCvt.reader
  val scanMantissa : (char, 's) StringCvt.reader
                     -> (int list * int list, 's) StringCvt.reader
end
